﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="StrategyCell.cs" company="">
//   
// </copyright>
// <summary>
//   The strategy cell.
// </summary>
// --------------------------------------------------------------------------------------------------------------------


using System;
using Systemathics.FrameWork.Interfaces;

namespace Systemathics.FrameWork
{
    public sealed class StrategyCell
    {
        public Guid Id { get; private set; }
        public Guid[] Instruments { get; private set; }
        public string Pattern { get; private set; }
        public string Name { get; private set; }
        public string Version { get; private set; }
        public string Info { get; private set; }
        public DateTime CreationDate { get; private set; }
        public byte[] Parameters { get; private set; }
        public TimeSpan BuildAt { get; private set; }
        public TimeSpan UnBuildAt { get; private set; }
        public Decimal CashEquity { get; set; }
        public double MaxDrawDown { get; private set; }
        public double DrawDown { get; set; }
        public double Bias { get; set; }
        public double MaxBias { get; private set; }
        public DataService Dataservice { get; set; }
        public OrderService OrderService { get; set; }
        public IFees feesProvider { get; set; }

        public StrategyCell(Guid ID, Guid[] Instruments, string Pattern, string Name, string Version, string Info, DateTime CreationDate, TimeSpan BuildAt, TimeSpan UnBuilAt, int ce, double md, double mb)
        {
            Id = ID;
            this.Instruments = Instruments; 
            this.Pattern = Pattern;
            this.Name = Name;
            this.Version = Version;
            this.Info = Info;
            this.CreationDate = CreationDate;
            this.Parameters = Parameters;
            this.BuildAt = BuildAt;
            this.UnBuildAt = UnBuilAt;
            CashEquity = ce;
            MaxDrawDown = md;
            MaxBias = mb;
            DrawDown = 0;
            Bias = 0;
        }
    }
}